
package cn.org.rapid_framework.generator.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class DateHelper {

    public static Date parseDate(String value, Class targetType, String... formats) {

	for (String format : formats) {
	    try {
		long v = new SimpleDateFormat(format).parse(value).getTime();
		return (Date) targetType.getConstructor(long.class).newInstance(v);
	    } catch (ParseException e) {
	    } catch (Exception e) {
		throw new RuntimeException(e);
	    }
	    try {
		return (Date) targetType.getConstructor(String.class).newInstance(value);
	    } catch (Exception e) {
	    }
	}
	throw new IllegalArgumentException("cannot parse:"+value+" for date by formats:"
		+Arrays.asList(formats));
    }

    public static boolean isDateType(Class<?> targetType) {

	if (targetType==null)
	    return false;
	return targetType==java.util.Date.class||targetType==java.sql.Timestamp.class
		||targetType==java.sql.Date.class||targetType==java.sql.Time.class;
    }

}
